/*
 * Copyright (C) 2009 Kristopher T Babic
 *
 * This program is free software; you can redistribute it and/or modify it under the terms of
 * the GNU General Public License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program;
 * if not, see <http://www.gnu.org/licenses>.
 */

package edu.idp.client.anim;

import gjt.Orientation;

import java.awt.*;
import java.util.Vector;

/**
 * A CollisionArena is defined as an arena in which collisions
 * may take place.<p>
 * <p/>
 * CollisionArenas must be able to report their size and
 * insets, and return a Vector of the Sprites contained in the
 * arena.<p>
 * <p/>
 * CollisionArenas must also implement two methods for handling
 * sprite and edge collisions, respectively.
 *
 * @author David Geary
 * @version 1.0, Apr 1 1996
 * @see Playfield
 * @see CollisionDetector
 * @see EdgeCollisionDetector
 * @see SpriteCollisionDetector
 * @see gjt.test.SimpleAnimationTest
 * @see gjt.test.BumpAnimationTest
 * @see gjt.test.TwoDrinkersAnimationTest
 */
public interface CollisionArena {
    Vector getSprites();

    Dimension getSize();

    Insets getInsets();

    void spriteCollision(AdvancedSprite sprite, AdvancedSprite other);

    void edgeCollision(AdvancedSprite sprite, Orientation orient);
}
